import matplotlib.pyplot as plt
import pandas as pd

# 1. 提前设置中文显示（必须在绘图前执行）
plt.rcParams['font.sans-serif'] = 'SimHei'  # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 2. 读取Excel数据，index_col=0将第一列（序号）设为索引
df = pd.read_excel('学生各学期成绩表.xlsx', index_col=0)

# 3. 计算各科目的平均分（结果为4个值：语文、数学、英语、综合）
data = df.agg('mean', numeric_only=True)
print(data)
# 4. 绘制饼图：标签改为科目名（data的索引），匹配数据长度
plt.pie(data, labels=data.index, autopct='%.2f%%')  # data.index是['语文','数学','英语','综合']

# 5. 设置正确的标题
plt.title('各科平均成绩占比饼状图')

# 6. 显示图表
plt.show()